package com.woniuxy.woniuhis.service;

import java.util.Date;
import java.util.List;

import javax.websocket.server.PathParam;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;

import com.woniuxy.woniuhis.entity.Inpatient;
import com.woniuxy.woniuhis.entity.PayIn;
import com.woniuxy.woniuhis.util.PayInDetails;
/**
 * 收款订单Service
 *
 */
public interface PayInService {
	//CRUD
	void addPayIn(PayIn payIn);
	void delPayInById(String payInId);
	void modifyPayIn(PayIn payIn);
	PayIn findPayInById(String payInId);
	List<PayIn> findPayIn(PayIn payIn,Date beginDate,Date endDate);
	/**
	 * 条件查询收款页面的条目信息
	 * 包含病人信息和总的支付情况
	 * 可以选择一段时间查询beginDate为开始，endDate为结束
	 */
	List<Inpatient> findInpatientPayIn(Inpatient condition,Date beginDate,Date endDate);
	/**
	 * 查询一个患者的所有账单
	 */
	List<PayInDetails> findPayInDetails(PayIn payIn);
	/**
	 * 删除一个项目订单，如果已经付款，还要删除付款订单
	 */
	void delPayInAndDetails(String typeid,String inItemid,String payInStatus);
	/**
	 * 修改一个项目订单，如果已经付款，还要修改付款订单
	 */
	void modifyPayInAndDetails(PayInDetails payInDetails);
	/**
	 * 查询押金订单
	 */
	List<PayIn> findPayInDeposit(PayIn payIn,Date beginDate,Date endDate);
	
	/**
	 * 查询门诊账单
	 */
	List<PayInDetails> findPayInOut(PayIn payIn);
	/**
	 * 修改一个门诊订单，如果已经付款，还要修改付款订单
	 */
	void modifyPayInAndOut(PayInDetails payInDetails) ;
}
